package com.xqboss.apps.domain.market;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.xqboss.apps.domain.BaseTable;
import com.xqboss.apps.enums.market.MarketStatusEnum;
import com.xqboss.apps.enums.market.MarketTypeEnum;
import com.xqboss.apps.enums.nft.NftTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 交易市场
 * @author wangcong
 * @date 2023-11-02
 */
@Data
@ApiModel("交易市场")
public class Market extends BaseTable {

    private static final long serialVersionUID = 1L;


    /**
     * 主键
     */
    @ApiModelProperty("主键")
    private Long id;

    /**
     * 标题
     */
    @ApiModelProperty("标题")
    private String title;

    /**
     * 用户id
     */
    @ApiModelProperty("用户id")
    private Long userId;

    /**
     * 主图
     */
    @ApiModelProperty("主图")
    private String img;

    /**
     * 价格
     */
    @ApiModelProperty("价格")
    private BigDecimal price;

    /**
     * 源id(用户藏品id、用户宝盒id)
     */
    @ApiModelProperty("源id(用户藏品id、用户宝盒id)")
    private Long sourceId;

    /**
     * 箱子id
     */
    @ApiModelProperty("箱子id")
    private Long boxId;

    /**
     * 藏品id
     */
    @ApiModelProperty("藏品id")
    private Long nftId;

    /**
     * 藏品编号id
     */
    @ApiModelProperty("藏品编号id")
    private Long nftNumberId;

    /**
     * 藏品编号值
     */
    @ApiModelProperty("藏品编号值")
    private String numberValueStr;

    /**
     * 1转卖中,2已售完,3已取消
     */
    @ApiModelProperty("1转卖中,2已售完,3已取消")
    private MarketStatusEnum status;

    @ApiModelProperty("是否是全新")
    private Boolean isNew;

    /**
     * 1典藏,2装备,3宝盒
     */
    @ApiModelProperty("1典藏,2装备,3宝盒")
    private MarketTypeEnum type;

    /**
     * 销量
     */
    @ApiModelProperty("销量")
    private Integer sales;

    /**
     * 库存
     */
    @ApiModelProperty("库存")
    private Integer stock;

    /**
     * 锁定库存
     */
    @ApiModelProperty("锁定库存")
    private Integer lockStock;

    /**
     * 总库存
     */
    @ApiModelProperty("总库存")
    private Integer totalStock;

    /**
     * 取消时间
     */
    @ApiModelProperty("取消时间")
    private LocalDateTime cancelTime;

    @ApiModelProperty("完成时间")
    private LocalDateTime finishTime;

}